package com.example.kotlinstudy

import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.TextView
import com.example.myapplication.R

/**
 * 自定义城市选择适配器
 * 实现酷炫、低调、奢华、浮夸且有内涵的城市列表展示
 * 为每个城市提供个性化的装饰文案和视觉效果
 */
class CustomCityAdapter(
    context: Context,
    private val cities: Array<String>
) : ArrayAdapter<String>(context, 0, cities) {

    /**
     * 城市装饰数据 - 体现内涵和浮夸
     * 为每个城市配置独特的副标题和描述文案
     */
    private val cityDecorations = mapOf(
        "北京" to Pair("· 帝都风华 ·", "紫禁城下，龙脉传承"),
        "上海" to Pair("· 东方明珠 ·", "黄浦江畔，繁华如梦"),
        "广州" to Pair("· 南国花城 ·", "珠江流韵，商贾云集"),
        "深圳" to Pair("· 创新之都 ·", "前海新区，科技先锋"),
        "杭州" to Pair("· 人间天堂 ·", "西湖如画，丝绸之路"),
        "南京" to Pair("· 六朝古都 ·", "金陵王气，文脉悠长"),
        "成都" to Pair("· 天府之国 ·", "蜀山蜀水，闲适安逸"),
        "武汉" to Pair("· 九省通衢 ·", "长江中游，英雄城市"),
        "西安" to Pair("· 千年古都 ·", "兵马俑前，汉唐遗风"),
        "重庆" to Pair("· 山城雾都 ·", "嘉陵江水，火锅飘香"),
        "天津" to Pair("· 海河明珠 ·", "津门故里，中西合璧"),
        "苏州" to Pair("· 园林之城 ·", "吴侬软语，小桥流水"),
        "青岛" to Pair("· 海滨名城 ·", "红瓦绿树，啤酒飘香"),
        "大连" to Pair("· 浪漫之都 ·", "星海广场，海风徐来"),
        "厦门" to Pair("· 海上花园 ·", "鼓浪屿韵，南洋风情")
    )

    /**
     * 获取普通Spinner项的视图 - 酷炫低调设计
     */
    override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
        val view = convertView ?: LayoutInflater.from(context)
            .inflate(R.layout.custom_spinner_item, parent, false)

        val city = cities[position]
        val decoration = cityDecorations[city] ?: Pair("· 璀璨明珠 ·", "传说之地")

        // 设置城市名称 - 奢华字体效果
        view.findViewById<TextView>(R.id.tv_city_name).text = city

        // 设置装饰性副标题 - 低调奢华
        view.findViewById<TextView>(R.id.tv_city_subtitle).text = decoration.first

        return view
    }

    /**
     * 获取下拉列表项的视图 - 浮夸有内涵设计
     */
    override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View {
        val view = convertView ?: LayoutInflater.from(context)
            .inflate(R.layout.custom_spinner_dropdown_item, parent, false)

        val city = cities[position]
        val decoration = cityDecorations[city] ?: Pair("✦ 传奇之地 ✦", "千年文化，现代辉煌")

        // 设置城市名称 - 豪华效果
        view.findViewById<TextView>(R.id.tv_city_name_dropdown).text = city

        // 设置副标题 - 内涵装饰
        view.findViewById<TextView>(R.id.tv_city_subtitle_dropdown).text = decoration.first

        // 设置描述文案 - 有内涵
        view.findViewById<TextView>(R.id.tv_city_description).text = decoration.second

        return view
    }
}

/*
 * 设计理念说明：
 * 
 * 1. 酷炫 (Cool): 
 *    - 使用渐变背景和阴影效果
 *    - 立体感图标设计
 *    - 动态的选择状态反馈
 * 
 * 2. 低调 (Subtle):
 *    - 深色主题配色方案
 *    - 优雅的圆角和边框
 *    - 适度的透明度和阴影
 * 
 * 3. 奢华 (Luxurious):
 *    - 金色装饰元素
 *    - 高质感的字体和间距
 *    - 精致的边框和描边
 * 
 * 4. 浮夸 (Extravagant):
 *    - 丰富的装饰性元素
 *    - 星星、钻石等符号装饰
 *    - 多层次的视觉效果
 * 
 * 5. 有内涵 (Meaningful):
 *    - 每个城市的文化特色描述
 *    - 体现历史文化底蕴的文案
 *    - 寓意深刻的装饰文字
 */